[% setvar title The Perl 6 Summary for the Week Ending 20020929 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the Week Ending 20020929'></a><h1>The Perl 6 Summary for the Week Ending 20020929</h1>
<p>Okay, this is my last summary before I take a couple of week's holiday
away from any form of connectivity. Will I cope? Can my system stand
going cold turkey? Can you live without my summaries?</p>
<p>Luckily, Leon Brocard has been volunteered to step into the breach and
produce summaries for the next couple of weeks.</p>
<p>Oh yes, due to my being a lazy swine and not reading release notes,
combined with a new version of Spamassassin no longer delivering mail
by default (now it silently drops mail on the floor in cases where it
had previously just delivered the mail), I may be missing some
messages from this week. Sorry.</p>
<p>We'll kick off, as usual with happenings on the internal list:</p>
<a name='Of Variables, Values and Vtables'></a><h2>Of Variables, Values and Vtables</h2>
<p>Dan stopped travelling (for a while at least), and listed the current
short term goals for Parrot. They are:</p>
<ul>
<li><a name='Finish up the calling convention changes'></a>Finish up the calling convention changes</li>
<li><a name='Spec the PMC changes'></a>Spec the PMC changes</li>
<li><a name='Spec the vtable changes'></a>Spec the vtable changes</li>
<li><a name='Get exceptions fully defined and a preliminary implementation'></a>Get exceptions fully defined and a preliminary implementation</li>
</ul>
<p>and promised the variable/vtable stuff in the `next day or so', with
the calling convention stuff a little earlier or later. Leo Toetsch
offered some his thoughts on vtable methods for _keyed opcodes.</p>
<p><a href='http://groups.google.com/groups?threadm=a05111b06b9b5199ba3f4@' target='_blank'>groups.google.com</a>[63.120.19.221]</p>
<p><a href='http://groups.google.com/groups?threadm=3D8FFA9B.50801@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='IMCC 0.0.9.2'></a><h2>IMCC 0.0.9.2</h2>
<p>Leopold Toetsch provided a patch which `fixes all currently known
problems [with respect to] IMCC/Perl6'. Andy Dougherty had some
problems with the patch dumping core, possibly because of platform
specific issues, and Steve Fink realised that there was an overlap
between this patch and one he'd been working on. The patch has not yet
been applied, but work continued.</p>
<p><a href='http://rt.perl.org/rt2/Ticket/Display.html?id=17537' target='_blank'>rt.perl.org</a></p>
<a name='Fun with intlists'></a><h1>Fun with intlists</h1>
<p>Leopold Toetsch showed some benchmarks of intlist against PerlArrays,
the difference is stunning. The intlist based test is some ten times
faster than PerlArray, with most of PerlArray's time being spent
allocating memory. Leo suggests using intlist as the PerlArray base
class.</p>
<p>Having got bragging rights for one speed up, Leo sent in a second
patch which gave <i>another</i> ten fold performance boost. Sean O'Rourke
had a few questions about performance in typical usage and wondered
if, we shouldn't look at using borrowing from SGI's STL implementation
of a dequeue (double ended queue). Leo was ahead of him there; his
second patch was already using the trick Sean had suggested.</p>
<p><a href='http://groups.google.com/groups?threadm=3D8EF7B5.7020800@toetsch.at' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=rt-17549-38478.11.1914996847459@bugs6.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Functions in Scheme'></a><h2>Functions in Scheme</h2>
<p>J&uuml;rgen B<code>ouml</code>mmels sent a pre patch which gets Scheme
functions working. It's built on top of an early version of Sean
O'Rourke's <b><i>scratchpad.pmc</i></b>, so be careful applying the initial
patch. Sean hoped that it would be be easy to reconcile J&uuml;rgen's
changes to the scratchpad pmc with the changes he'd made since he sent
J&uuml;rgen his early code. Jonathan Sillito asked why the scheme
interpreter maintained its own environment stack rather than use the
<code>pad_stack</code>. Apparently the current pad_stack is very closely tied to
Sub.pmc, which doesn't quite offer the semantics needed for scheme
functions. Also, the pad_stack makes it tricky to implement <code>set!</code>
and <code>define</code> correctly.</p>
<p>Dan chimed in asking everyone to hash out what they needed from
scratchpads and lexical variables; once we have that nailed down it
should be easy to get everything designed and implemented reasonably
quickly, so J&uuml;rgen and Sean came up with a list between them.</p>
<p><a href='http://groups.google.com/groups?threadm=m2fzvzhhuv.fsf@helium.physik.uni-kl.de' target='_blank'>groups.google.com</a> -- The patch</p>
<p><a href='http://groups.google.com/groups?threadm=m2znu7cjv2.fsf@helium.physik.uni-kl.de' target='_blank'>groups.google.com</a> -- Its description</p>
<a name='Perl6 on HP-UX 11.00'></a><h2>Perl6 on HP-UX 11.00</h2>
<p>H Merijn Brand was having trouble getting Perl 6 to work on HP-UX. It
was initially thought that this was a problem with the version of perl
he was using, but was eventually tracked down to a problem with <code>make
test</code>; the tests passed when Merijn did <code>perl6 --test</code>. However the
thread also covered making sure that the Perl6 build process rebuilt
the Grammar if appropriate. There's also a theory that there's a
problem with IMCC generating .pasm files.</p>
<p>Leopold Toetsch put his hand up for causing the problem, and submitted
a patch to fix things. Applied.</p>
<p><a href='http://groups.google.com/groups?threadm=20020926170219.C871.H.M.BRAND@hccnet.nl' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=rt-17615-38723.14.5807354709082@bugs6.perl.org' target='_blank'>groups.google.com</a></p>
<a name='The status of Leopold Toetsch's patches'></a><h2>The status of Leopold Toetsch's patches</h2>
<p>Leo wondered what's happening with the pile of patches he's submitted
this week. At the time he made the post, he had 15 patches outstanding
(or is that `outstanding patches'?) and, as a result several of the
patches were applied. Steve Fink voted that Leo should be given commit
access to CVS and Leo was grateful for the vote of confidence.</p>
<p>Leo later sent in yet another patch for intlist, which after a short
quibble from Tom Hughes, and a correction from Leo, was applied.</p>
<p><a href='http://groups.google.com/groups?threadm=3D922E2B.6010507@toetsch.at' target='_blank'>groups.google.com</a></p>
<p><a href='http://rt.perl.org/rt2/Ticket/Display.html?id=17621' target='_blank'>rt.perl.org</a></p>
<a name='Of PMCs Buffers and memory management'></a><h2>Of PMCs Buffers and memory management</h2>
<p>Worker of the week, Leo Toetsch posted a bunch of questions about
PMCs, Buffers and their associated memory management. Firstly, he
wondered why there was a separation between the two. He commented that
`If PMCs and Buffers are unified, it should be possible to mark
[during a GC run] in one recursive process'. And there's the rub; we
don't like recursion. PMCs are structured in such a way that a PMC
tree can be walked in iterative fashion, which means that GC can be
done in pretty much constant memory. Leo had a bunch of other
questions, that were mostly answered by Mike Lambert, which drew
supplementary questions from Leo. Both Mike and Leo agreed that the
changes needed to Parrot for unification would lead to massive
patches; but that's not a reason for <i>not</i> doing the work.</p>
<p><a href='http://groups.google.com/groups?threadm=3D9408A8.50306@toetsch.at' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.44.0209271641300.5514-100000@jall.org' target='_blank'>groups.google.com</a></p>
<a name='Add Stone Age Exception Handling'></a><h2>Add Stone Age Exception Handling</h2>
<p>This should possibly really go in the 'In Brief' section because there
was only one post in the `thread'. But it looks like an important
post. Brent Dax sent in a patch which `adds a very, very rudimentary
form of C-level exception handling' to parrot. Brent Reckons that
brings parrot up to slightly better than `homo erectus' quality
exception handling.</p>
<p><a href='http://rt.perl.org/rt2/Ticket/Display.html?id=17646' target='_blank'>rt.perl.org</a></p>
<a name='Meanwhile, in Perl 6'></a><h1>Meanwhile, in Perl 6</h1>
<p>I can't remember who it was christened this week's monster thread
`Paren Madness', but they weren't wrong. The `Here, we can build a
list like this...'  thread continued on its merry way. I'm afraid I
pretty much stopped reading once it became apparent that the only
thing that was going to stop the madness was Larry making a
pronouncement. Eventually Dan stepped up and asked if someone could
summarize the discussion, maybe with a few possible conclusions, and
then leave it for a while 'til Larry got back. Luke Palmer wrote it up
and offered a suggestion which looks at first glance to be sane, and
which seemed to be well liked.</p>
<p><a href='http://groups.google.com/groups?threadm=a05111b06b9b678a3ac16@' target='_blank'>groups.google.com</a>[63.120.19.221]</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.44.0209241523490.26307-100000@babylonia.flatirons.org' target='_blank'>groups.google.com</a></p>
<a name='For loop and streams'></a><h2>For loop and streams</h2>
<p>In pretty much the only other substantial thread of the week,
`<a href='mailto:dulfer@widd.de'>dulfer@widd.de</a>' had some problems with the new <code>for</code> loop using
multiple counters, and wondered if this was because of problems with
the current Perl6 implementation, or because of problems with his
understanding. It turned out that it was a problem with Sean
O'Rourke's understanding when he implemented the Perl 6 grammar; he'd
missed something in the appropriate Apocalypse. There also seems to be
a problem in that the current behaviour is mostly defined with hand
waves, which is great when you're doing the broad brush design, but
less great when you're trying to implement the language.</p>
<p><a href='http://groups.google.com/groups?threadm=200209261254.g8QCs8n09224@p15100460.pureserver.info' target='_blank'>groups.google.com</a></p>
<a name='In Brief'></a><h1>In Brief</h1>
<p>Leopold Toetsch patched <b><i>packfile.c</i></b> to stop monkeying with the
internals of key structures.</p>
<p>Parrot T Shirts, based on Andy Wardley's parrot logo design, are now
available from Cafe Press at
<a href='http://www.cafeshops.com/cp/store.aspx?s=parrotstuff1,' target='_blank'>www.cafeshops.com</a> any proceeds
go to YAS/TPF.</p>
<p>Simon Cozens found, and patched a problem with IMCC's `ostat'
structure, which clashed with a structure in Darwin's <b><i>stat.h</i></b>.</p>
<p>Leopold Toetsch has been playing with using Doug Lea's memory
allocator (see <a href='http://gee.cs.oswego.edu/dl/html/malloc.html)' target='_blank'>gee.cs.oswego.edu</a> in
Parrot. Apparently it makes `life' run faster, but appears to double
the memory footprint.</p>
<p>Steve Fink sent in some patches for IMCC, Leopold Toetsch did some
cherry picking and released an integrated patch.</p>
<p>Erik Lechak wondered if there was a getting started guide to parrot,
and if there wasn't, how should he go about writing one? My tip: Do
it, use the tools you prefer to make the kind of guide you would have
welcomed finding when you first came to parrot. Just don't use
proprietary formats. Heck, it's how I started writing these summaries.</p>
<a name='Who's Who in Perl 6'></a><h1>Who's Who in Perl 6</h1>
<ul>
<li><a name='Who are you?'></a>Who are you?</li>
<p>Piers Cawley</p>
<li><a name='What do you do for/with Perl 6?'></a>What do you do for/with Perl 6?</li>
<p>I write the summaries every week, and try and contribute to
perl6-language and perl6-internals when they're discussing things I
know about.</p>
<li><a name='Where are you coming from?'></a>Where are you coming from?</li>
<p>I've been a happy Perl user for since around 4.036, initially using it
as a shell and awk replacement for system administration tasks, then
moving over into a programming r&ocirc;le where I got heavily into
OO Perl. As so many others have said, Perl 5 fits my brain better than
anything else I've been paid to do, but Perl 6 offers the chance to
make that fit much closer.</p>
<li><a name='When do you think Perl 6 will be released?'></a>When do you think Perl 6 will be released?</li>
<p>Sooner than we all think. Later than I want.</p>
<li><a name='Why are you doing this?'></a>Why are you doing this?</li>
<p>Someone had to. I missed Bryan's summaries and decided that, if nobody
else was going to volunteer it might as well be me.</p>
<li><a name='You have 5 words. Describe yourself.'></a>You have 5 words. Describe yourself.</li>
<p>Just another opinionated Perl hack.</p>
<li><a name='Do you have anything to declare?'></a>Do you have anything to declare?</li>
<p>I've run out of answer sets to this questionnaire. C'mon people, your
summarizer needs you.</p>
</ul>
<a name='Acknowledgements'></a><h1>Acknowledgements</h1>
<p>Thanks to Piers Cawley, for taking time out of his massively busy
schedule to answer the questionnaire; to Leon Brocard, for not
squawking too loudly when he got volunteered to do the next two
summaries; to Leo Toetsch, for a fantastic number of patches this
week; to Simon Cozens, for coming back to Perl 6; to the lovely Gill,
for continuing to put up with me, day in, day out...</p>
<p>Hmm... check out the Oscar speech.</p>
<p>I'm trying an experiment this week, community proofreading. I'll run
the speelchucker over this summary and release it to the ravening
masses. Who knows, maybe it'll make sense. It does at least have the
right date at the top of the page.</p>
<p>Once more, if you think this summary has value send money to the Perl
Foundation <a href='http://donate.perl-foundation.org' target='_blank'>donate.perl-foundation.org</a> and feed back and/or
T?iBooks to me, mailto:pdcawley@bofh.org.uk. As usual, the fee paid
for publication of this summary on perl.com has been donated directly
to the Perl Foundation.</p>
</div>
